﻿using System;
using Business_Layer.Business_Layer.Integrantes;
using Business_Layer.Data_Access_Layer;
using System.Linq;

namespace SAP.User_Interface.Integrantes
{
    public partial class Integrantes : System.Web.UI.Page
    {
        readonly DB_SAPDataContext _dbSap = new DB_SAPDataContext();
        private readonly ControladorIntegrantes _controlador = new ControladorIntegrantes();
        private string _action = string.Empty;

        protected void Page_Load(object sender, EventArgs e)
        {
            _action = Request.Form["action"];

            if (!string.IsNullOrWhiteSpace(_action))
                GetType().GetMethod(_action).Invoke(this, null);
        }

        public void CrearContenidoIntegrantes()
        {
            var proyecto = Request.Form["proyecto"];

            Response.Write(_controlador.CrearContenidoIntegrantes(proyecto));
            Response.End();
        }

        public void ModificarIntegrante()
        {
            var id = Convert.ToInt32(Request.Form["id"]);

            var usuarioId = _dbSap.INTEGRANTES.Single(x => x.INTEGRANTES_ID == id).USUARIOS.USUARIO_ID;

            var proyecto = Request.Form["proyecto"];
            var rol = Request.Form["rol"];

            var rolId = _dbSap.ROLESPROYECTO.Single(x => x.ROLPROYECTO_nombre.Equals(rol)).ROLPROYECTO_ID;

            var integrante = new INTEGRANTES
                {
                    INTEGRANTES_ID = id,
                    INTEGRANTES_ROLPROYECTO_ID = rolId,
                    INTEGRANTES_USUARIO_ID = usuarioId
                };

            Response.Write(_controlador.ModificarIntegrante(integrante, proyecto));
            Response.End();
        }

        public void RegistrarIntegrante()
        {
            var proyecto = Request.Form["proyecto"];

            var usuario = Request.Form["usuario"];
            var rol = Request.Form["rol"];

            var rolId = _dbSap.ROLESPROYECTO.Single(x => x.ROLPROYECTO_nombre.Equals(rol)).ROLPROYECTO_ID;
            var usuarioId = _dbSap.USUARIOS.Single(x => x.USUARIO_nombre.Equals(usuario)).USUARIO_ID;

            var integrante = new INTEGRANTES
                {
                  INTEGRANTES_ROLPROYECTO_ID  = rolId,
                  INTEGRANTES_USUARIO_ID = usuarioId
                };

            Response.Write(_controlador.RegistrarIntegrante(integrante, proyecto));
            Response.End();
        }

        public void EliminarIntegrante()
        {
            var id = Convert.ToInt32(Request.Form["id"]);

            Response.Write(_controlador.EliminarIntegrante(id));
            Response.End();
        }

        public void CrearDialogoAgregarIntegrante()
        {
            Response.Write(_controlador.CrearDialogoAgregarIntegrante());
            Response.End();
        }

        public void CrearDialogoEditarIntegrante()
        {
            Response.Write(_controlador.CrearDialogoEditarIntegrante());
            Response.End();
        }

        public void CargarSelectProyectos()
        {
            var id = Request.Form["id"];

            Response.Write(_controlador.CargarProyectos(id));
            Response.End();
        }

        public void CargarUsuarios()
        {
            Response.Write(_controlador.CargarUsuarios());
            Response.End();
        }

        public void CargarRoles()
        {
            Response.Write(_controlador.CargarRoles());
            Response.End();
        }
    }
}